class_name StackEffectComponentAsset
extends GameplayEffectComponentAsset

## 堆叠更新策略，即堆叠什么时候更新
enum StackUpdatePolicy {
    ## 堆叠数不更新
    None,
    ## 在持续时间结束时更新
    DurationEnd,
}

## 堆叠数更新方式
enum StackUpdateType {
    ## 增加
    Increase,
    ## 减少
    Decrease,
}

## 堆叠更新策略，即堆叠什么时候更新
@export var stack_update_policy: StackUpdatePolicy

## 堆叠数更新方式
@export var stack_update_type: StackUpdateType

## 堆叠数变化量
@export_range(-100, 100, 1, "or_greater") var stack_count_variation: int

## 最大堆叠数
@export_range(1, 100, 1, "or_greater") var max_stack_count: int


func get_component_name() -> String:
    return "StackEffectComponent"


func create_spec() -> GameplayEffectComponent:
    return StackEffectComponent.new(self)
